package com.prog3.calendarutec.conecciones;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.database.Cursor;

import com.prog3.calendarutec.beans.Calendario;
import com.prog3.calendarutec.beans.Evento;

public class LocalService implements Repositorio{

	/**
	 * Permitira agregar Calendarios
	 * @return
	 */
	public int addCalendario(Object ser,Object calendario,Object contact) {
		DbConection db=(DbConection) ser;
		Calendario bCal=(Calendario)calendario;
		ContentValues nuevoRegistro = new ContentValues();
		nuevoRegistro.put("id_contacto",bCal.getId_Contacto());
		nuevoRegistro.put("usuario",bCal.getUsuario());
		nuevoRegistro.put("password",bCal.getPassword());
		nuevoRegistro.put("url_recurso",bCal.getUrl_recurso());
		db.open();
			long idR=db.insert("Calendario",  nuevoRegistro);
		db.close();
		return (int)idR;
		
	}
	
	
	/**
	 * Permitira Eliminar Calendarios
	 * @return
	 */
	public int deleteCalendario(Object ser,Object calendario,Object contact){
		DbConection db=(DbConection) ser;
		Calendario bCal=(Calendario)calendario;
		
		
		db.open();
			long idR=db.delete("Calendario",String.valueOf((int)bCal.getId_Calendario()));
		db.close();
		return (int)idR;
	}
	
	
	/**
	 * 
	 */
	public List<Calendario> listarCalendar(Object ser,Object obj1){
		List<Calendario> lst= new ArrayList<Calendario>();
		
    	return lst;
	}
	
	
	
	
	
	/**
	 * Permitira agregar evento
	 * @return
	 */
	public int addEvento(Object ser,Object calendario,Object evento){
		DbConection db=(DbConection) ser;
		//Calendario bCal=(Calendario)calendario;
		Evento bEv=(Evento) evento;
		ContentValues nuevoRegistro = new ContentValues();
		nuevoRegistro.put("titulo",bEv.getTitulo().toString());
		nuevoRegistro.put("fechafin",bEv.getFecha_fin().toString());
		nuevoRegistro.put("id_calendario",1);
		nuevoRegistro.put("id_recursosExt"," ");
		nuevoRegistro.put("lugar",bEv.getLugar().toString());
		nuevoRegistro.put("fecha_hora",bEv.getFecha_hora().toString());
		nuevoRegistro.put("comentario",bEv.getComentario().toString());
		
		db.open();
		long idR=db.insert("Evento",  nuevoRegistro);
		db.close();
		return (int)idR;
	}
	
	/**
	 * Permitira editar Evento
	 * @return
	 */
	public int editEvento(Object ser,Object calendario,Object evento){
		return 1;
		
	}
	
	/**
	 * Permitira eliminar un evento
	 * @return
	 */
	public int deleteEvento(Object ser,Object calendario,Object evento,int id){
		DbConection db=(DbConection) ser;
		Calendario bCal=(Calendario)calendario;
		Evento bEv=(Evento) evento;
		
		
		db.open();
			long idR=db.delete("Evento",String.valueOf((int)bEv.getId_Evento()));
		db.close();
		return (int)idR;
		
	}
	
	/**
	 * List<?> nombre=new ArrayList<?>();
	 * Permitira crear una lista con eventos
	 * @return
	 */
	public List<Evento> listar(Object ser,Object calendario,Object evento){
		List<Evento> event=new ArrayList<Evento>();
		DbConection db=(DbConection) ser;
		Calendario bCal=(Calendario) calendario;
		String sql="SELECT * FROM Evento where id_calendario="+bCal.getId_Calendario();
		db.open();
    	Cursor x=db.consultar(sql, null);
    	if(x.moveToFirst()){
    		do{
    			
    			Evento pr=new Evento();
    			pr.setId_Evento(x.getInt(x.getColumnIndex("id_evento")));
    			pr.setId_Calendario(x.getInt(x.getColumnIndex("id_calendario")));
    			pr.setComentario(x.getString(x.getColumnIndex("comentario")));
    			//pr.setFecha_fin()
    			
    			
    			event.add(pr);
    		}while(x.moveToNext());
    	}
    	db.close();
		
		
		return event;
	}
	
	
	
	
	/**
	 * 
	 * @return
	 */
	public boolean sincronizar(Object ser,Object calendario,Object evento){
		return true;
	}
	
}
